type ReverseTuple<T extends any[],F extends any[]=[]>=T extends [...infer L,infer R] ? ReverseTuple<L,[...F,R]>:F

type a1=ReverseTuple<[1,2,3,4,5]>
type a2=ReverseTuple<[string,number,object]>
export {}